/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
char ** fizzBuzz(int n, int* returnSize){
    int i = 0;
    //题示数组中都是存放字符串，字符串存入数组中每一个元素相当于存入字符串首地址
    //申请指针数组来存放每一个字符串的首地址
    char** arr = (char**)malloc(sizeof(char*)*n);
    for(i = 1; i <= n ; i++)
    {
        //既是3又是5的倍数
        if(i%3 == 0 && i%5 == 0)
        {
            arr[i-1] = (char*)malloc(sizeof(char)*9);  //存放"FizzBuzz\0"需要九个字节
            strcpy(arr[i-1],"FizzBuzz");
        }
        //是3的倍数，不是5的倍数
        else if(i%3 == 0)
        {
            arr[i-1] = (char*)malloc(sizeof(char)*5);  //存放"Fizz\0"需要五个字节
            strcpy(arr[i-1],"Fizz");
        }
        //是5的倍数，不是3的倍数
        else if(i%5 == 0)
        {
            arr[i-1] = (char*)malloc(sizeof(char)*5);  //存放"Buzz\0"需要五个字节
            strcpy(arr[i-1],"Buzz");
        }
        //既不是3也不是5的倍数
        else
        {
            arr[i-1] = (char*)malloc(sizeof(char)*5);  //存放"10000"需要五个字节
            sprintf(arr[i-1],"%d",i);       //sprintf的作用是将格式化数据转换为字符串
        }
    }
    *returnSize = n;
    return arr;
}